package com.zhuiyun.project.api.products.product.vo;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.zhuiyun.project.common.entity.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;

/**
 * @ClassName ProductSortVo
 * @Description 接受前端商品和商品分类数据
 * @Author ypq
 * @Date 2023/10/26 15:59
 **/
@Data
public class ProductSortVo extends BaseEntity implements Serializable {
    /**
     * 商品id
     */
    @ApiModelProperty("主键id新增时无需填写")
    private Long productId;
    /**
     * 商品名称
     */
    @NotNull(message = "商品名称不能为空")
    @ApiModelProperty("商品名称")
    private String productName;
    /**
     * 商品原价（元）
     */
    @NotNull(message = "商品原价不能为空")
    @ApiModelProperty("商品原价")
    private Double costOfGoods;
    /**
     * 商品现价（元）
     */
    @NotNull(message = "商品现价不能为空")
    @ApiModelProperty("商品现价")
    private Double currentCommodityPrice;
    /**
     * vip价格
     */
    @ApiModelProperty("vip价格")
    private Double vipPrice;
    /**
     * 库存数量
     */
    @NotNull(message = "库存数量不能为空")
    @ApiModelProperty("库存数量")
    private Integer inventoryQuantity;
    /**
     * 商品描述
     */
    @NotNull(message = "商品描述不能为空")
    @ApiModelProperty("商品描述")
    private String productDescription;

    /**
     * 分类id
     */
    @NotNull(message = "分类id不能为空")
    @ApiModelProperty("分类id")
    private Long sortId;

    /**
     * 商品主图
     */
    @ApiModelProperty("商品主图")
    @NotNull(message = "商品主图不能为空")
    private String mainImgId;
    /**
     * 商品介绍图片
     */
    @ApiModelProperty("商品介绍图片")
    @NotNull(message = "商品详情图必须上传4张")
    private String detailImgId;

    /**
     * 上架状态（0未上架，1已上架）
     */
    @ApiModelProperty("上架状态")
    private String shelfStatus;
    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")//JsonFormat是出参格式化。
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")//DateTimeFormat 是入参格式化；
    private Date createTime;
    /**
     * 更新时间
     */
    @ApiModelProperty("更新时间")
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")//JsonFormat是出参格式化。
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")//DateTimeFormat 是入参格式化；
    private Date updateTime;

    /**
    * 分类层级拼串
    */
    @TableField(exist = false)
    private String sortLevel;

    /**
     * 商品导航图（app端使用）
     */
    @ApiModelProperty("商品导航图")
    private String bannerImgId;
}
